local key = KEYS[1]         -- 限流键
local count = tonumber(ARGV[1])  -- 时间窗口(秒)
local window = tonumber(ARGV[2])   -- 允许访问次数

-- 获取当前计数
local current = redis.call('GET', key) or 0
current = tonumber(current)

-- 判断是否超过限制
if current >= count then
    return 0  -- 超过限制
end

-- 计数增加 (原子操作)
redis.call('INCRBY', key, 1)

-- 设置过期时间 (首次设置或重置过期)
if redis.call('TTL', key) == -1 then
    redis.call('EXPIRE', key, window)
end

return 1  -- 未超过限制